package com.hzit.manager.service.impl;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.hzit.cart.api.domain.Item;
import com.ruoyi.common.core.utils.DateUtils;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hzit.manager.mapper.ItemMapper;
import com.hzit.manager.service.IItemService;

/**
 * 商品Service业务层处理
 * 
 * @author wf
 * @date 2023-08-29
 */
@Service
public class ItemServiceImpl implements IItemService 
{
    @Autowired
    private ItemMapper itemMapper;
    @Autowired
    private RabbitTemplate rabbitTemplate;
    /**
     * 查询商品
     * 
     * @param id 商品主键
     * @return 商品
     */
    @Override
    public Item selectItemById(Long id)
    {
        return itemMapper.selectItemById(id);
    }

    /**
     * 查询商品列表
     * 
     * @param item 商品
     * @return 商品
     */
    @Override
    public List<Item> selectItemList(Item item)
    {
        return itemMapper.selectItemList(item);
    }

    /**
     * 新增商品
     * 
     * @param item 商品
     * @return 结果
     */
    @Override
    public int insertItem(Item item)
    {
        item.setCreateTime(new Date());
        return itemMapper.insertItem(item);
    }

    /**
     * 修改商品
     * 
     * @param item 商品
     * @return 结果
     */
    @Override
    public int updateItem(Item item)
    {
        item.setUpdateTime(new Date());
        return itemMapper.updateItem(item);
    }

    /**
     * 批量删除商品
     * 
     * @param ids 需要删除的商品主键
     * @return 结果
     */
    @Override
    public int deleteItemByIds(Long[] ids)
    {
        return itemMapper.deleteItemByIds(ids);
    }

    /**
     * 删除商品信息
     * 
     * @param id 商品主键
     * @return 结果
     */
    @Override
    public int deleteItemById(Long id)
    {
        return itemMapper.deleteItemById(id);
    }

    /**rabbitmq发送消息
     * 向
     * @param id
     */
	@Override
	public void sendMessageToES(Long id) {
        Item item = new Item();
        item.setGoodsId(id);
        item.setStatus("1");   // 代表sku商品审核通过
        List<Item> items = this.selectItemList(item);
        System.out.println("items = " + items);
        rabbitTemplate.convertAndSend("updateStatus", JSON.toJSONString(items));
        System.out.println(" 发送成功！");
	}
}
